package com.xhg.mqtt;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;

public class mqttGui {
      public static void main(String[] args) {
      mqttGui gui = new mqttGui();
      mqttV2 v2 =new mqttV2();
      gui.createFrame(v2);
    }

  private  void createFrame(mqttV2 v2) {
    // 1. 创建一个顶层容器（窗口）
    JFrame jf = new JFrame("mqtt测试窗口");          // 创建窗口
    jf.setSize(250, 250);                       // 设置窗口大小
    jf.setLocationRelativeTo(null);             // 把窗口位置设置到屏幕中心
    jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); // 当点击窗口的关闭按钮时退出程序（没有这一句，程序不会退出）

    // 2. 创建中间容器（面板容器）
    JPanel panel = new JPanel();                // 创建面板容器，使用默认的布局管理器

    // 3. 创建一个基本组件（按钮），并添加到 面板容器 中
    JButton btn = new JButton("连接(错误)");
    btn.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        v2.init2();
      }
    });
    JButton btn4 = new JButton("连接(正确)");
    btn4.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        v2.init();
      }
    });
    JButton btn1 = new JButton("设备上报");
    btn1.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        v2.login();
      }
    });
    JButton btn2 = new JButton("箱子上报");
    btn2.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        v2.boxinfo();
      }
    });
    JButton btn3 = new JButton("模拟ack");
    btn3.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        v2.ack();
      }
    });
    JButton btn5 = new JButton("触发重连");
    btn5.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        v2.reconn();
      }
    });
    panel.add(btn);
    panel.add(btn4);
    panel.add(btn1);
    panel.add(btn2);
    panel.add(btn3);
//    panel.add(btn5);

    // 4. 把 面板容器 作为窗口的内容面板 设置到 窗口
    jf.setContentPane(panel);

    // 5. 显示窗口，前面创建的信息都在内存中，通过 jf.setVisible(true) 把内存中的窗口显示在屏幕上。
    jf.setVisible(true);
  }

}